import router from "@/router";
//引入路由
import axios from "axios";
//引入ui插件
import { MessageBox } from "element-ui"
//远程服务器地址
// axios.defaults.baseURL = "http://47.98.128.191:3000";
//本地服务器地址
// axios.defaults.baseURL = "http://localhost:3000";

const request = axios.create({
  baseURL: 'http://47.98.128.191:3000',
  timeout: 5000
})

//请求拦截器：当前端的请求发送到侯后端之前会被拦截下来
request.interceptors.request.use((config) => {
  config.headers.Authorization = localStorage.token;
  return config;
})



//响应拦截器：当后端返回的结果到达前端页面之前，会被拦截下来
request.interceptors.response.use(
  //响应成功响应函数
  (res) => {
    return res.data;
  },
  //响应失败执行函数
  (err) => {
    if (err && err.response && err.response.status) {
      // 4. 根据状态码来处理不同类型的报错，添加错误信息提示
      switch (err.response.status) {
        case 401:
          err.message = "身份认证已过期";
          MessageBox.alert('这登录已过期，请重新登录', '提示', {
            confirmButtonText: '确定',
            callback: action => {
              router.replace(`/login`);
            }
          });
          break;
        case 404:
          err.message = "请求的资源找不到";
          break;
        case 500:
          err.message = "服务器错误";
          break;
        default:
          err.message = "未知错误";
      }
      // 5. 抛出报错，阻止代码继续往后执行
      return Promise.reject(err.message);
    }
    return Promise.reject(err.message);
  }
);

export default request